home *** CD-ROM | disk | FTP | other *** search
- #include <stdlib.h>
- #include <stdio.h>
-
- #include <proto/dos.h>
-
- /* schreibt Daten aus Buffer */
- /* fuegt c als neues Zeichen ein, falls c!=EOF */
- int _putbuf(int c,FILE *f)
- {
- _chkabort();
- if(!f) return(EOF);
- if((f->flags&(_WRITEABLE|_READ|_EOF|_ERR))!=_WRITEABLE) return(EOF);
- if(!f->bufsize){if(f->flags&_UNBUF) f->bufsize=1; else f->bufsize=BUFSIZ;}
- if(!f->base){
- if(!(f->base=(char *)malloc(f->bufsize+1)+1))
- return(EOF);
- }else{
- int len=f->pointer-f->base;
- if(f->flags&_WRITE)
- if(Write((BPTR)f->filehandle,f->base,len)!=len) return(EOF);
- }
- f->flags|=_WRITE;
- f->pointer=f->base;
- f->count=f->bufsize;
- *f->pointer++=c;
- f->count--;
- return(0); /* hier noch ueberlegen */
- }
-